/*!  \file  Map.h
 *	  \brief  
 * 
 *   \details   details
 *   \author    Yordan Madzhunkov German Research School for Simulation Sciences GmbH
 *   \version   1.0
 *   \date      04/24/2013 02:55:01 PM
 *   \copyright GNU Public License.
 */
#pragma once
// TODO Refactor to remove maxID enum

class Map { // adptor for the sld map
public:
	enum { MaxID = 128 };
	Map();
	virtual ~Map();
	void insert(const char * name, const unsigned int ID);
	unsigned int insert(const char * name); 
	unsigned int getID (const char * name);
	const char * getName(unsigned int ID);
	
	unsigned int first(); // returns the ID of the first entry in the Map
	unsigned int next(); // returns the next entry

private:
	DISALLOW_COPY_AND_ASSIGN(Map);
	
	void * data;
	void * iter;
	const char ** names;
};
